//	Project:	HexTower
//	File:		Tile.h
//	Author:		Mustafa Aldoori
//	Purpose:	Tile Class to hold specific data for a single Tile.

#pragma once

#include "BaseObject.h"
#include <string>

enum LAYER_TYPE { FRONT = 1, PLAY, MID, BACK };
enum COMPARTMENT_TYPE { RESIDENTIAL = 1, COMMERCIAL, PARKING, AGRICULTURAL, INDUSTRIAL, MILITARY, GOVERNMENT };

enum CONDITION_TYPE { VACANT = 1, NONVACANT };

class CTile : public CBaseObject
{
private:
	// Tile Logic
	int						m_nTileX;
	int						m_nTileY;
	int						m_nTileImageID;
	std::string				m_szFilename;
	std::string				m_szEvent;

	struct s_RoomData {
		int nSalePrice;
		int nRentPrice;
		int nMaxPopulation;
		int nCurrentPopulation;
		int nFloor;
		int nCondition;

		int nStaff;
		int nProfit;
		int nRevenue;
	};

protected:
	int						m_nTileLayer;

public:
	CTile( void );
	~CTile( void );

	void Update( float fElapsed );
	void Render();
	bool CheckCollision( CBaseObject * pBase );

	// Accessors
	int GetTileX()			{ return m_nTileX; }
	int GetTileY()			{ return m_nTileY; }
	int GetTileType()		{ return m_nTileLayer; }
	RECT GetRect( void );

	// Mutators
	void SetTileX( int iTileX );
	void SetTileY( int iTileY );
	void SetTileType( int nTileType ) { m_nTileLayer = nTileType; }
};

